/*
 * Copyright (c) 2019 Author: Fancyears Milos Malvis @1243093366@qq.com
 * ALL COPYRIGHT REVERSED.
 */

package com.fancyears.dao;

import java.io.Serializable;
import java.util.List;

import org.apache.ibatis.annotations.Param;

/**
 * DAO公共基类
 * 基础的增删改查都有，如果需要进行批量操作，需要在子类/子接口中重新定义
 *
 * @param <Model> The Model Class 这里是泛型不是Model类
 * @param <PK>    The Primary Key Class 如果是无主键，则可以用Model来跳过，如果是多主键则是Key类
 * @param <E>     辅助类，用于分页查询，批量插入，批量更新等操作
 * @Author: Fancyears Milos Malvis
 * @Date: Created in  2019/5/8 13:30
 * @Modified By:
 */

public interface MyBatisBaseDao<Model, PK extends Serializable, E> {

    int deleteByPrimaryKey(PK id);

    int insert(Model record);

    int insertSelective(Model record);

    Model selectByPrimaryKey(PK id);

    int updateByPrimaryKeySelective(Model record);

    int updateByPrimaryKey(Model record);
}